Load balancing is a technique used to distribute traffic efficiently among network servers performing the same or similar functions so that no individual server is overburdened and the network performance is able to cope in the case of sudden fluctuations in traffic activity. Load balancing may be employed for example to handle HTTP requests for a particular website. If there is only one web server responding to all the incoming HTTP requests for the website, the capacity of the web server may not be able to handle high volumes of incoming traffic once the website becomes popular. The website's pages will load slowly and some of the users will have to wait until the web server is free in order for their requests to be processed. In order to achieve web server scalability, more servers can be added to distribute the load among the group of servers. Such a group of servers is sometimes referred to as a “server cluster”. Load balancing can be applied to many different types of servers (including application servers and database servers).
Current load balancing solutions are based on network servers that are connected to an internal network, typically an IPv4 network. The internal network is in turn connected to some load balancing equipment which is in turn connected, directly or indirectly to an external network (again, the external network is typically an IPv4 network). The external network may be a public network, such as the Internet, or a private network such as the backbone network of a telecommunications service provider.
Load balancing may be executed on the application layer, where a session once established is maintained at the same cluster server. Deep Packet Inspection (DPI) of packet headers is performed by the load balancing equipment (or associated DPI equipment). For example, when an HTTP request arrives to the server load balancer, the packet is inspected using DPI and the destination IP and port number re-written before forwarding the packet to the allocated cluster server.
The disadvantages of this known approach to load balancing include:                There is no common load balancing system between IPv4 and IPv6, i.e. different approaches are employed depending upon whether the external network is IPv4 or IPv6;        Where both the external and internal networks are IPv4, the IPv4 to IPv4 network address translation requires state binding at IP and TCP/UDP port level.        
An alternative approach to load balancing is to rely upon a Domain Name System (DNS) server which maintains a set of IP addresses corresponding to respective servers of a cluster. When a client request the IP address from the DNS, e.g. for an HTTP request, the DNS server sends a DNS response using the a public IP address from the set of IP addresses stored in the DNS record. The DNS server selects one of the cluster server IP addresses, e.g. on a round robin basis, and returns this to the client. The client sends the HTTP request on to the server network using the selected IP address as destination address.